This invention generally relates to network switching, and more specifically, to a network switch having a reconfigurable topology. Embodiments of the invention relate to a software implementation of network switching.
A network switch is a data switching device that forwards a data unit, typically of the type referred to as a “packet,” from a source network component to a destination network component. Typically, a network switch receives a packet from the source network component via an input port and sends the packet to the destination network component via an output port.
Network switches and routers are implemented in hardware using a combination of ASICs/FPGAs and some software. The function of the software is primarily to control the operation of hardware elements like the ASICs and FPGAs. Since hardware based ASICs and FPGAs are more difficult to produce and configure, this creates a relatively inflexible architecture for the system. As the workload on a switch changes and different amounts of traffic flow from a given input port to a given output port, the hardware interconnection does not change.